package demo1;
import java.util.Random;
import java.util.HashMap;

public class Test {
    public static void main(String[] args) {
        Random rand = new Random();
        int[]  array = new int[10_0000];
        for(int i = 0; i < array.length; i++) {
            array[i] = rand.nextInt(1000);
        }
        statistics(array);
    }
    /**
     * 统计每个元素出现的次数*/
    public static void statistics(int[] array) {
        HashMap<Integer,Integer> map = new HashMap<>();
        for(int x : array) {
            if(map.get(x)!=null) {
               map.put(x,map.get(x)+1);
            } else {
                map.put(x,1);
            }
        }
        System.out.println(map);
    }

/*    public Node copyRandomList(Node head) {
        *//**
         使用HashMap对链表进行存储（TreeMap需要比较）
         key值存放原链表节点地址，value值存放新链表节点
         第一遍循环：创建新链表节点并设置值
         第二遍循环：设置next 和 random值 因为key与value一一对应，并且map.get（key）返回value值
         故关系直接对应 *//*
        HashMap<Node,Node>  map = new HashMap<>();
        Node cur = head;
        //存放对应关系
        while(cur!=null) {
            map.put(cur,new Node(cur.val));
            cur = cur.next;
        }
        //设置next random
        cur = head;
        while(cur!=null) {
            map.get(cur).next = map.get(cur.next);
            map.get(cur).random = map.get(cur.random);
            cur = cur.next;
        }
        return map.get(head);
    }*/
}
